package b.h.y.bj.util.bitmap;

import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.widget.ImageView;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

/**
 * Created by YHB on 2016/1/11.
 */
public class NetCacheUtil {

    /**
     * 从网络上下载图片
     *
     * @param imageView
     * @param image
     */
    public void getBitmapFromNet(ImageView imageView, String image) {
        new BitmapTask().execute(imageView, image); //启动AsyncTask 参数会在doInBackground中获取
    }


    /**
     * AsyncTask 是Handler和线程池进行封装
     * 第一个泛型: 参数类型
     * 第二个泛型: 更新进度泛型
     * 第三个泛型: 是OnPostExecute的返回结果
     */
    class BitmapTask extends AsyncTask<Object, Void, Bitmap> {

        private ImageView imageView;
        private String url;

        /**
         * 后台耗时方法在此执行, 在子线程运行
         *
         * @param voids
         * @return
         */
        @Override
        protected Bitmap doInBackground(Object... voids) {
            imageView = (ImageView) voids[0];
            url = (String) voids[1];
            return null;
        }

        /**
         * 更新进度 在主线程运行
         *
         * @param values
         */
        @Override
        protected void onProgressUpdate(Void... values) {
            super.onProgressUpdate(values);
        }

        /**
         * 耗时方法结束后执行此方法 主线程运行
         *
         * @param aVoid
         */
        @Override
        protected void onPostExecute(Bitmap aVoid) {
            super.onPostExecute(aVoid);
        }
    }

    private void downloadBitmap(String url) {
        try {
            HttpURLConnection httpURLConnection = (HttpURLConnection) new URL(url).openConnection();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
